package com.cicigodd.brick.plug.system.role.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cicigodd.brick.plug.common.response.PageResult;
import com.cicigodd.brick.plug.system.role.api.SysRoleServiceApi;
import com.cicigodd.brick.plug.system.role.entity.SysRole;
import com.cicigodd.brick.plug.system.role.request.SysRoleAddRequest;
import com.cicigodd.brick.plug.system.role.request.SysRoleDeleteRequest;
import com.cicigodd.brick.plug.system.role.request.SysRoleDetailRequest;
import com.cicigodd.brick.plug.system.role.request.SysRoleEditRequest;
import com.cicigodd.brick.plug.system.role.request.SysRoleListRequest;
import com.cicigodd.brick.plug.system.role.response.SysRoleDetailResponse;
import com.cicigodd.brick.plug.system.role.response.SysRoleListResponse;
import java.util.List;

/**
 * 角色管理
 *
 * @author cicigodd
 * @date 2022/12/12 15:52:23
 */
public interface SysRoleService extends IService<SysRole>, SysRoleServiceApi  {

    /**
     * 添加
     *
     */
    void add(SysRoleAddRequest sysRoleAddRequest);

    /**
     * 删除
     *
     */
    void delete(SysRoleDeleteRequest sysRoleDeleteRequest);

    /**
     * 编辑
     *
     */
    void edit(SysRoleEditRequest sysRoleEditRequest);

    /**
     * 详情
     *
     */
    SysRoleDetailResponse detail(SysRoleDetailRequest sysRoleDetailRequest);

    /**
     * 分页列表
     *
     */
    PageResult<SysRoleListResponse> list(SysRoleListRequest sysRoleListRequest);

    List<SysRoleListResponse> listAll(SysRoleListRequest sysRoleListRequest);

    List<Integer> getMenuIdsByRoleId(Integer id);
}